home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / frefs11.lha / FetchRefs / Rexx / GoFetchRefs.ttx < prev   
Text File  |  1994-10-28  |  2KB  |  93 lines

  1. /*   $VER: GoFetchRexx.ttx 1.1 (28.10.94)
  2. **
  3. **   ARexx script to invoke FetchRefs from TurboText.
  4. */
  5.  
  6. OPTIONS RESULTS
  7. caller = ADDRESS()
  8.  
  9. /* Static part of the editor's ARexx port name. That is, the name before any
  10.  * suffixes (like '.1') are appended.
  11.  */
  12. editorname = 'TURBOTEXT'
  13.  
  14. /* Exit if we're not called from the editor */
  15. IF (LEFT(caller, LENGTH(editorname)) ~= editorname) then
  16.     EXIT 10
  17.  
  18. /* Get the current word from the editor, reading char by char */
  19. 'SetDisplayLock ON'
  20.  
  21. position = 0
  22. function = ''
  23. 'GetChar'
  24. char = result
  25. DO WHILE VERIFY(char, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_#?") = 0
  26.     function = function || char
  27.     'MoveRight'
  28.     position = position + 1
  29.     'GetChar'
  30.     char = result
  31. END
  32.  
  33. 'MoveLeft' position
  34. 'SetDisplayLock OFF'
  35.  
  36. /* Define a temporary filename to put the reference into */
  37. cutat = VERIFY(function, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_")
  38. if cutat > 0 THEN
  39.     basename = LEFT(function, cutat - 1)
  40. ELSE
  41.     basename = function
  42.  
  43. filename = 'T:FR_'basename
  44.  
  45. /* It doesn't matter whether we want a taglist, varargs og whatever function */
  46. IF RIGHT(function, 7) = "TagList" THEN
  47.     function = LEFT(function, LENGTH(function) - 7)
  48. ELSE IF RIGHT(function, 4) = "Tags" THEN
  49.     function = LEFT(function, LENGTH(function) - 4)
  50. ELSE IF RIGHT(function, 1) = "A" THEN
  51.     function = LEFT(function, LENGTH(function) - 1)
  52.  
  53. /* Now actually get the reference */
  54. ADDRESS 'FETCHREFS'
  55. FR_GET function || '(%|Tags|TagList|A)' filename CASE FILEREF
  56. gotoline = rc2
  57.  
  58. /* Address editor again to load the file or report error */
  59. ADDRESS VALUE caller
  60.  
  61. IF rc ~= 0 THEN DO
  62.         /* Skip if the error was '...!' (actually 'Aborted!'). This occours
  63.          * whenever the 'select from what file' window is closed, which is
  64.          * not really an error.
  65.          */
  66.         IF RIGHT(rc2, 1) = '!' THEN
  67.             EXIT 0
  68.  
  69.         /* Report the error (obtained from FetchRefs) in the editor. */
  70.         'SetStatusBar Temporary' rc2
  71.  
  72.         EXIT 0
  73. END
  74. ELSE DO
  75.         /* Make the editor open a new window and load the autodoc into it. */
  76.         'OpenDoc NAME' filename
  77.         docPort = result
  78.         ADDRESS VALUE docPort
  79.         'SetDisplayLock ON'
  80.  
  81.         /* Jump to the suggested line */
  82.         IF gotoline ~= 0 THEN
  83.             'Move FOLDS' gotoline
  84.  
  85.         'SetDisplayLock OFF'
  86.  
  87.         /* Delete the temporary file */
  88.         ADDRESS COMMAND 'C:Delete >NIL:' filename
  89.  
  90.         EXIT 0
  91. END
  92.  
  93.